# Transaction Specifications

A *transaction specification* specifies what a transaction should do. Each [Transaction Type](#transaction-types) has its own type of specification.

## Payment

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/payment.json') %>

### Example

<%- renderFixture('requests/prepare-payment.json') %>

## Trustline

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/trustline.json') %>

### Example

<%- renderFixture('requests/prepare-trustline.json') %>

## Order

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/order.json') %>

The following invalid flag combination causes a `ValidationError`: `immediateOrCancel` and `fillOrKill`. These fields are mutually exclusive, and cannot both be set at the same time.

### Example

<%- renderFixture('requests/prepare-order.json') %>

## Order Cancellation

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/order-cancellation.json') %>

### Example

<%- renderFixture('requests/prepare-order-cancellation.json') %>

## Settings

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('output/get-settings.json') %>

### Example

<%- renderFixture('requests/prepare-settings.json') %>

## Escrow Creation

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/escrow-creation.json') %>

### Example

<%- renderFixture('requests/prepare-escrow-creation.json') %>

## Escrow Cancellation

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/escrow-cancellation.json') %>

### Example

<%- renderFixture('requests/prepare-escrow-cancellation.json') %>

## Escrow Execution

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/escrow-execution.json') %>

### Example

<%- renderFixture('requests/prepare-escrow-execution.json') %>

## Check Create

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/check-create.json') %>

### Example

<%- renderFixture('requests/prepare-check-create.json') %>

## Check Cancel

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/check-cancel.json') %>

### Example

<%- renderFixture('requests/prepare-check-cancel.json') %>

## Check Cash

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/check-cash.json') %>

### Example

<%- renderFixture('requests/prepare-check-cash-amount.json') %>

## Payment Channel Create

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/payment-channel-create.json') %>

### Example

<%- renderFixture('requests/prepare-payment-channel-create.json') %>

## Payment Channel Fund

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/payment-channel-fund.json') %>

### Example

<%- renderFixture('requests/prepare-payment-channel-fund.json') %>

## Payment Channel Claim

See [Transaction Types](#transaction-types) for a description.

<%- renderSchema('specifications/payment-channel-claim.json') %>

### Example

<%- renderFixture('requests/prepare-payment-channel-claim.json') %>
